/**
   @file color.h
	
   (C) 2014 Vatuadell Interactive
*/

#ifndef __kraw_Color_h__
#define __kraw_Color_h__

#include <string>

namespace kraw
{
	class Color
	{
	public:
		Color(float r = 1, float g = 1, float b = 1, float a = 1);
		Color(std::string color);

		Color& operator*=(const Color &rhs);
		Color& operator*=(float value);
		Color& operator/=(const Color &rhs);
		Color& operator/=(float value);
		Color& operator+=(const Color &rhs);
		
		const Color operator*(const Color &rhs) const;
		const Color operator*(float value) const;
		const Color operator/(const Color &rhs) const;
		const Color operator/(float value) const;
		const Color operator+(const Color &rhs) const;
		
		bool operator==(const Color &rhs);
		bool operator!=(const Color &rhs);

		unsigned int toRGBA() const;
		unsigned int toABGR() const;

		std::string toString();
		
		float r; 
		float g;
		float b;
		float a;
	};
}

#endif
